package com.多线程基础.三种实现方式.Callable接口实现;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

//想要获取多线程运行的结果
public class ThreadDemo {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        /*
        * 1.创建一个类MyCallable实现Callable接口
        * 2.重写call（有返回值的方法）
        *.3.对象（任务对象）
        * 4.futuretask对象
        * 5.thread对象
        *
        * */
        MyCallable mc=new MyCallable();//3.表示多线程要执行的任务
        FutureTask<Integer> ft=new FutureTask<>(mc);//4.管理多线程运行的结果的
        //用FutureTask管理mc的结果
        Thread t1=new Thread(ft);
        t1.start();//不能t1.run，不然就是正常调用方法，t1.start就是开启线程
        Integer i=ft.get();//FutureTask对象的get方法就是返回值
        System.out.println(i);
    }
}
